import { LOGIN_SUCCESS } from "./action-type"
import { login } from '../../api/user'
// 异步 action creator 函数
// 在函数体内部，返回一个新函数
// 该返回的函数会被 redux thunk 中间件自动执行
// reudx thunk 中间件在调用函数时，会传递 dispatch 作为参数
export const loginAsync = ({ username, password }) => {
  return async dispatch => {
    // 在该函数中可以执行带副作用的操作，包括执行异步ajax 请求
    const result = await login({username, password})
    // result 中 保存的是用户登录成功的数据
    // 成功拿到返回值 执行状态更新
    if(result){
      dispatch({ // 传递 action 对象
        type: LOGIN_SUCCESS,
        payload: result // 将 用户名 头像覆盖上来
      })
    }
  }
}